#ifndef INTERPRETER_H
#define INTERPRETER_H

#include "album.h"
#include "dom.h"

#include <boost/shared_ptr.hpp>

#include <string>
#include <list>
#include <iostream>

using namespace std;

namespace model {
	class interpreter {
	public:
		interpreter() {}
		interpreter(const model::dom &node);
		interpreter(const string &name, const list<model::album> a)
		: _name(name), _albums(a) {}
		~interpreter() {}

		void set_name(const string &n) {_name = n;}
		const string& get_name() const {return _name;}

		void parse(const model::dom &node);

		void set_albums(const list<model::album> a) {_albums = a;}
		const list<model::album>& get_albums() const {return _albums;}
		list<model::album>& get_albums() {return _albums;}

		void print() const;
	private:
		string _name;
		list<model::album> _albums;
	};
}

#endif
